
//描述一个任务
public class MyTimerTask implements Comparable<MyTimerTask>{
    //什么时候执行任务，time是一个ms级的时间戳
    private long time;
    //实际要执行的代码
    private Runnable runnable;

    //delay是一个相对的时间间隔 当前时刻为基准，delay时间后，执行
    public MyTimerTask(Runnable runnable,long delay){
        this.runnable=runnable;
        //计算真正执行任务的绝对时间 方便判定任务是否到达时间
        this.time=System.currentTimeMillis()+delay;
    }

    public void run(){
        runnable.run();
    }

    //优先级队列要求这个类是可以比较大小的
    //比较规则：时间小的 放在队首
    @Override
    public int compareTo(MyTimerTask o) {
        return (int)(this.time-o.time);
    }

    public long getTime() {
        return time;
    }
}
